from datetime import timezone, timedelta, datetime
from datetimerange import DateTimeRange

def apply_timeout(value: int, multiplier: float, hours_range: DateTimeRange, time_offset: int = 0) -> float:
    """
        Применяет множитель multiplier к значению value, если текущее время слишком позднее и больше hours_range.max и меньше hours_range.min.
        Возвращает value, в ином случае.

        Необязательный параметр time_offset определяет часовой пояс (UTC +X), по умолчанию 0 (т.е. UTC).
    """
    # Получить текущее время по UTC и применить к нему time_offset
    current_time : datetime = datetime.now(timezone.utc) + timedelta(hours=time_offset)
    current_time = current_time.replace(tzinfo=None)

    if current_time in hours_range:
        print("* Ответ от apply_timeout: Включён медленный режим, значение VALUE увеличивается!")
        return value * multiplier
    else:
        return value